package com.xuecheng.web.exceptions;

import com.xuecheng.commons.enums.ErrorCode;
import com.xuecheng.commons.model.vo.ResponseResult;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.RestControllerAdvice;

@RestControllerAdvice
public class GlobalExceptionHandler {
    /*
     * 异常处理方法
     * 返回值 和controller返回值一样
     * 参数就是controller中出现异常的 异常对象非
     * 方法配置注解
     * @ExceptionHander    需要处理的异常类型
     * */
    @ExceptionHandler(value = RuntimeException.class)
    public ResponseResult exeption(RuntimeException e) {
        e.printStackTrace();
        return ResponseResult.errorResult(ErrorCode.ERROR);
    }

    /*
     * 参数  业务方法 （controller   service     抛出的异常
     *
     * */
    @ExceptionHandler(value = BusinessException.class)
    public ResponseResult businessException(BusinessException e) {
        ErrorCode errorCode = e.getErrorCode();
        return ResponseResult.errorResult(errorCode);
    }
}
